/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import Recurso.Alimento;
import cenario.Cenario;
import cenario.Lugar;

/**
 *
 * @author Gean
 */
public class View {

    static Lugar decisaoDoLugar = null;
    static int contadorDeEntrepostos = 0;

    
    
    public static void main(String args[]) {

        Narrativa padrao = new Narrativa();
        System.out.println("" + padrao.historia);
        jogar(padrao);

    }

    
    
    public static String jogar(Narrativa padrao) {
        
        String escolha = padrao.entradaDeDados.menu();


        if (escolha.equals("1")) {
            if (padrao.mensageiro.getPosicaoAtual().equals(padrao.cenarioGeral.getListaDeLugares().get(0))) {
                
                System.out.println(">>> Voce esta no " + padrao.cenarioGeral.getListaDeLugares().get(1).getNome());
                System.out.println("\n" + padrao.cenarioGeral.getListaDeLugares().get(1).getDescricao());
                decisaoDoLugar = padrao.entradaDeDados.escolherLugar(padrao.cenarioGeral.getListaDeLugares().get(4), padrao.cenarioGeral.getListaDeLugares().get(5));
                padrao.mensageiro.andar(padrao.mensageiro, 10, padrao.cenarioGeral.getListaDeLugares().get(1));
                
            } else if (padrao.mensageiro.getPosicaoAtual().equals(padrao.cenarioGeral.getListaDeLugares().get(1))) {
                
                padrao.mensageiro.andar(padrao.mensageiro, 20, padrao.entradaDeDados.escolherLugar(padrao.cenarioGeral.getListaDeLugares().get(2), null));
                System.out.println("\n" + padrao.cenarioGeral.getListaDeLugares().get(2).getDescricao());
                Alimento comida = new Alimento();
                padrao.mensageiro.getPosicaoAtual().entreposto(padrao.entradaDeDados.opcoesEntreposto(), padrao.mensageiro, 3, comida);
                
            } else if (padrao.mensageiro.getPosicaoAtual().equals(padrao.cenarioGeral.getListaDeLugares().get(2))) {
                
                padrao.mensageiro.andar(padrao.mensageiro, 10, padrao.entradaDeDados.escolherLugar(padrao.cenarioGeral.getListaDeLugares().get(3), null));
                System.out.println("\n" + padrao.cenarioGeral.getListaDeLugares().get(3).getDescricao());
                Alimento comida = new Alimento();
                padrao.mensageiro.getPosicaoAtual().entreposto(padrao.entradaDeDados.opcoesEntreposto(), padrao.mensageiro, 3, comida);
                
                contadorDeEntrepostos++;
            } else if (padrao.mensageiro.getPosicaoAtual().equals(padrao.cenarioGeral.getListaDeLugares().get(3))) {
                //Deserto \/
                if (contadorDeEntrepostos == 2) {
                    padrao.mensageiro.andar(padrao.mensageiro, 10, padrao.cenarioGeral.getListaDeLugares().get(8));
                    System.out.println("\n" + padrao.mensageiro.getPosicaoAtual().getDescricao());
                    padrao.mensageiro.andar(padrao.mensageiro, 10, padrao.entradaDeDados.escolherLugar(null, null));

                } else if (decisaoDoLugar.equals(padrao.cenarioGeral.getListaDeLugares().get(4))) {
                    padrao.mensageiro.andar(padrao.mensageiro, 10, padrao.cenarioGeral.getListaDeLugares().get(4));
                    System.out.println("\n>>> Voce esta no " + padrao.mensageiro.getPosicaoAtual().getNome());
                    System.out.println("\n" + padrao.mensageiro.getPosicaoAtual().getDescricao());
                    System.out.println("" + padrao.cenarioGeral.getListaDeLugares().get(4).getDesafio().getDescricao());
                    escolha = padrao.entradaDeDados.escolheOpcaoRecursoDesafio();
                    padrao.mensageiro.getPosicaoAtual().getDesafio().enfrentarDesafio(escolha, padrao.mensageiro, escolha);
                    padrao.mensageiro.andar(padrao.mensageiro, 60, padrao.entradaDeDados.escolherLugar(padrao.cenarioGeral.getListaDeLugares().get(2), null));

                } else {
                    padrao.mensageiro.andar(padrao.mensageiro, 10, padrao.cenarioGeral.getListaDeLugares().get(5));
                    System.out.println(">>> Voce esta no " + padrao.mensageiro.getPosicaoAtual().getNome());
                    System.out.println("\n" + padrao.mensageiro.getPosicaoAtual().getDescricao());
                    decisaoDoLugar = padrao.entradaDeDados.escolherLugar(padrao.cenarioGeral.getListaDeLugares().get(6), padrao.cenarioGeral.getListaDeLugares().get(7));
                    if (decisaoDoLugar.equals(padrao.cenarioGeral.getListaDeLugares().get(6))) {
                        padrao.mensageiro.andar(padrao.mensageiro, 20, decisaoDoLugar);
                        System.out.println(">>> Voce esta no " + padrao.mensageiro.getPosicaoAtual().getNome());
                        System.out.println("\n" + padrao.mensageiro.getPosicaoAtual().getDescricao());
                        padrao.mensageiro.andar(padrao.mensageiro, 30, padrao.entradaDeDados.escolherLugar(padrao.cenarioGeral.getListaDeLugares().get(2), null));

                    } else {
                        padrao.mensageiro.andar(padrao.mensageiro, 20, decisaoDoLugar);
                        System.out.println(">>> Voce esta no " + padrao.mensageiro.getPosicaoAtual().getNome());
                        System.out.println("\n" + padrao.mensageiro.getPosicaoAtual().getDescricao());
                        padrao.mensageiro.andar(padrao.mensageiro, 40, padrao.entradaDeDados.escolherLugar(padrao.cenarioGeral.getListaDeLugares().get(2), null));
                    }
                }
            }

        } else if (escolha.equals("2")) {

            System.out.println("\nSeus pontos de vida estao em: " + padrao.mensageiro.getHp());
        } else {

            System.out.println("\n" + padrao.mensageiro.preverTempo(padrao.mensageiro.atribuirRandom(2)));
        }

        return jogar(padrao);
    }



}
